ghz grpc 压力测试使用

您所在的位置:网站首页 grpc python 源码 ghz grpc 压力测试使用

ghz grpc 压力测试使用

2023-04-13 18:21| 来源: 网络整理| 查看: 265

grpc压力测试

通过ghz来对grpc接口进行压力测.

ghz是通过golang开发的针对grpc的压测工具,ghz基于proto或者protoset来发起grpc调用,类似常规的测试(ABtest),可以指定并发量,请求总数,请求频率。

并且能够输出html,csv,json,prometheus等让我们更加直观的看到接口接口性能情况.

链接

官方文档 github

windows安装以及踩坑

用下载好的zip也可以去 下载地址 不同的版本,我目前只在windows上使用.

使用protoc

ghz可以通过proto文件也可以通过protoset调用grpc服务. 我个人推荐使用protoset,因为提前使用protoc编译好了的protoset文件可以让ghz调用不用考虑到proto文件的一些引用问题.

protoc --include_imports -I . --descriptor_set_out=bundle.protoset *.proto

注意使用 –include_imports 不然很多依赖的proto不会编译进来

使用ghz执行测试

之后我们就可以使用ghz

解压配置并且配置环境变量

基于protoset执行测试

简单的调用

ghz --insecure --protoset bundle.protoset --call Service.method 127.0.0.1:7999

常用指令

--skipFirst grpc最好第一个跳过,因为比较慢 --insecure 使用文本和非安全的连接 -r|--rps=0 rps的速率限制,默认没有限制 -c|--concurrency 指定并发数量 默认50 -n| --total 一共请求的数量 默认200 -d|--data 通过json的方式发送请求报文 -D|--data-file 指定json文件调用数据 -o|--output 输出路径 -O|--format 输出的格式 summary, csv, json, pretty, html, influx-summary, influx-details 调用相关: --protoset 指定protoset文件 -i | --import-paths 指定proto文件的路径(用protoset不需要使用) --call 指点调用的方法(package.Service/Method' 或者 'package.Service.Method' )

输出结果

count - 包含成功和失败的全部请求数量.total - 从开始到结束的全部时间.slowest - 最慢的请求fastest - 最快的请求average - 平均请求数量requests/sec - rps

通过-O 输出html等

ghz --insecure -o test.html -O html --protoset bundle.protoset --call Service.method 127.0.0.1:7999



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3